package com.atguigu.springcloud.config;

import org.springframework.cloud.gateway.route.RouteLocator;
import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @ProjectName: mscloud
 * @Package: com.atguigu.springcloud.config
 * @ClassName: GateWayConfig
 * @Author: Administrator
 * @Description: GateWay配置文件
 * @Date: 2022/4/19 0019 15:17
 * @Version: 1.0
 */
@Configuration
public class GateWayConfig {

    /**
     * 配置了一个id为route-name的路由规则，当访问地址 http://localhost:9527/guonei时会自动转发到地址：http://news.baidu.com/guonei
     * @param builder
     * @return
     */
    @Bean
    public RouteLocator customRouteLocator(RouteLocatorBuilder builder)
    {
        RouteLocatorBuilder.Builder routes = builder.routes();

        routes.route("path_route_atguigu", r -> r.path("/guonei").uri("http://news.baidu.com/guonei")).build();

        return routes.build();

    }


    @Bean
    public RouteLocator customRouteLocator3(RouteLocatorBuilder builder)
    {
        RouteLocatorBuilder.Builder routes = builder.routes();
        routes.route("path_route_atguigu3", r -> r.path("/guoji").uri("http://news.baidu.com/guoji")).build();
        return routes.build();
    }

    @Bean
    public RouteLocator customRouteLocator4(RouteLocatorBuilder builder)
    {
        RouteLocatorBuilder.Builder routes = builder.routes();
        routes.route("path_gitee", r -> r.path("/gitee").uri("https://gitee.com/cheng-ruiliang/dashboard/projects")).build();
        return routes.build();
    }

    @Bean
    public RouteLocator customRouteLocator5(RouteLocatorBuilder builder)
    {
        RouteLocatorBuilder.Builder routes = builder.routes();
        routes.route("path_taobao", r -> r.path("/taobao").uri("https://www.taobao.com/")).build();
        return routes.build();
    }
}
